diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 194e236..fb02a02 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,10 @@
+2019-12-04  Tim Horton  <timothy_horton@apple.com>
+
+        Fix the iOS build
+
+        * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Added.
+        * WebKit.xcodeproj/project.pbxproj:
+
 2019-12-04  Per Arne Vollan  <pvollan@apple.com>
 
         Unreviewed fix for failure to create sandbox extension on macOS after r253011. This should be iOS only.
diff --git a/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb b/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb
new file mode 100644
index 0000000..d7049531
--- /dev/null
+++ b/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb
@@ -0,0 +1,1144 @@
+; Copyright (C) 2010-2019 Apple Inc. All rights reserved.
+;
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions
+; are met:
+; 1. Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+; 2. Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the distribution.
+;
+; THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+; BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+; THE POSSIBILITY OF SUCH DAMAGE.
+
+(version 1)
+(deny default (with partial-symbolication))
+(allow system-audit file-read-metadata)
+
+;;;
+;;; The following rules were originally contained in 'common.sb'. We are duplicating them here so we can
+;;; remove unneeded sandbox extensions.
+;;;
+
+(import "util.sb")
+(import "carrier-bundle-allowed.sb")
+
+(define-once (allow-read-and-issue-generic-extensions . filters)
+    (allow file-read*
+           (apply require-any filters))
+    (allow file-issue-extension
+        (require-all
+            (extension-class "com.apple.app-sandbox.read")
+            (apply require-any filters))))
+
+(define-once (allow-read-write-and-issue-generic-extensions . filters)
+    (allow file-read* file-write*
+           (apply require-any filters))
+    (allow file-read-metadata
+           (apply require-any filters))
+    (allow file-issue-extension
+        (require-all
+            (extension-class "com.apple.app-sandbox.read-write" "com.apple.app-sandbox.read")
+            (apply require-any filters))))
+
+(define-once (managed-configuration-read-public)
+    (allow file-read*
+           (well-known-system-group-container-subpath "/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/PublicInfo")
+           (front-user-home-subpath "/Library/ConfigurationProfiles/PublicInfo")
+           (front-user-home-subpath "/Library/UserConfigurationProfiles/PublicInfo")))
+
+(define-once (managed-configuration-read . files)
+    (if (null? files)
+        (allow file-read*
+               (well-known-system-group-container-subpath "/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles")
+               (front-user-home-subpath "/Library/ConfigurationProfiles")
+               (front-user-home-subpath "/Library/UserConfigurationProfiles"))
+        (for-each
+            (lambda (file)
+                (allow file-read*
+                    (well-known-system-group-container-literal
+                        (string-append "/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/" file))
+                    (front-user-home-literal
+                        (string-append "/Library/ConfigurationProfiles/" file)
+                        (string-append "/Library/UserConfigurationProfiles/" file))))
+            files)))
+
+(define-once (allow-preferences-common)
+    (allow file-read-metadata
+           (home-literal "")
+           (home-literal "/Library/Preferences")))
+
+(define-once (mobile-preferences-read . domains)
+    (allow-preferences-common)
+    (allow user-preference-read (apply preference-domain domains)))
+
+(define-once (mobile-preferences-read-write . domains)
+    (allow-preferences-common)
+    (allow user-preference-read user-preference-write (apply preference-domain domains)))
+
+(define-once (framebuffer-access)
+    (allow iokit-open
+           (iokit-user-client-class "IOMobileFramebufferUserClient"))
+    (mobile-preferences-read "com.apple.iokit.IOMobileGraphicsFamily"))
+
+(define-once (asset-access . options)
+    (let ((asset-access-filter
+            (require-all
+              (require-any
+                (home-subpath "/Library/Assets")
+                (subpath "/private/var/MobileAsset"))
+              (extension "com.apple.assets.read"))))
+        ;; <rdar://problem/10710883>
+        ;; <rdar://problem/11569106>
+        (allow file-read* asset-access-filter)
+        (if (memq 'with-media-playback options)
+            (play-media asset-access-filter))
+        (allow mach-lookup (with report) (with telemetry)
+               (global-name "com.apple.mobileassetd" "com.apple.mobileassetd.v2"))
+        (mobile-preferences-read "com.apple.MobileAsset")))
+
+(define-once (mobile-keybag-access)
+     (allow iokit-open
+            (iokit-user-client-class "AppleKeyStoreUserClient")))
+
+(define-once (location-services)
+    (allow mach-lookup
+           (global-name "com.apple.locationd.registration"))
+    (allow-carrier-bundle) ;; <rdar://problem/21192365>
+    (mobile-preferences-read
+        "com.apple.AppSupport"
+        "com.apple.GEO"
+        "com.apple.locationd"))
+
+(define-once (play-audio)
+    (allow mach-lookup
+           (global-name "com.apple.audio.AURemoteIOServer"))
+    (allow mach-lookup (with report) (with telemetry)
+           (xpc-service-name "com.apple.audio.toolbox.reporting.service")))
+
+(define-once (play-media . filters)
+    (if (not (null? filters))
+        ;; <rdar://problem/9875794>
+        (allow file-issue-extension
+            (require-all
+                (apply require-any filters)
+                (extension-class "com.apple.mediaserverd.read"))))
+    (allow file-issue-extension
+        (require-all
+            (extension-class "com.apple.mediaserverd.read")
+            (extension "com.apple.security.exception.files.absolute-path.read-only"
+                       "com.apple.security.exception.files.absolute-path.read-write"
+                       "com.apple.security.exception.files.home-relative-path.read-only"
+                       "com.apple.security.exception.files.home-relative-path.read-write")))
+    (allow file-issue-extension
+        (require-all
+            (extension-class "com.apple.mediaserverd.read-write")
+            (extension "com.apple.security.exception.files.absolute-path.read-write"
+                       "com.apple.security.exception.files.home-relative-path.read-write")))
+    ;; CoreMedia framework.
+    (allow mach-lookup
+           (global-name "com.apple.coremedia.admin")
+           (global-name "com.apple.coremedia.asset.xpc")
+           (global-name "com.apple.coremedia.assetimagegenerator.xpc")
+           (global-name "com.apple.coremedia.audioprocessingtap.xpc")
+           (global-name "com.apple.coremedia.capturesession")      ; Actually for video capture
+           (global-name "com.apple.coremedia.capturesource")       ; Also for video capture (<rdar://problem/15794291>).
+           (global-name "com.apple.coremedia.customurlloader.xpc") ; Needed for custom media loading
+           (global-name "com.apple.coremedia.formatreader.xpc")
+           (global-name "com.apple.coremedia.player.xpc")
+           (global-name "com.apple.coremedia.remaker")
+           (global-name "com.apple.coremedia.remotequeue")
+           (global-name "com.apple.coremedia.routediscoverer.xpc")
+           (global-name "com.apple.coremedia.routingcontext.xpc")
+           (global-name "com.apple.coremedia.samplebufferaudiorenderer.xpc")
+           (global-name "com.apple.coremedia.samplebufferrendersynchronizer.xpc")
+           (global-name "com.apple.coremedia.sandboxserver.xpc")
+           (global-name "com.apple.coremedia.systemcontroller.xpc")
+           (global-name "com.apple.coremedia.volumecontroller.xpc"))
+
+    (allow mach-lookup (with report) (with telemetry)
+        (global-name "com.apple.coremedia.cpeprotector.xpc")
+        (global-name "com.apple.coremedia.endpoint.xpc")
+        (global-name "com.apple.coremedia.figcontentkeysession.xpc")
+        (global-name "com.apple.coremedia.figcpecryptor")
+        (global-name "com.apple.coremedia.routingsessionmanager.xpc")
+        (global-name "com.apple.coremedia.sts"))
+
+    (mobile-preferences-read
+        "com.apple.avfoundation"
+        "com.apple.coreaudio"
+        "com.apple.coremedia"
+        "com.apple.corevideo"
+        "com.apple.itunesstored" ; Needed by MediaPlayer framework
+        "com.apple.mobileipod" ; Ditto
+        "com.apple.audio.virtualaudio" ; <rdar://problem/57170333>
+    )
+
+    ;; Required by the MediaPlayer framework.
+    (allow mach-lookup
+        (global-name "com.apple.audio.AudioSession"))
+
+    (allow mach-lookup (with report) (with telemetry)
+        (global-name "com.apple.airplay.apsynccontroller.xpc"))
+
+    ;; Allow mediaserverd to issue file extensions for the purposes of reading media
+    (allow file-issue-extension (require-all
+        (extension "com.apple.app-sandbox.read")
+        (extension-class "com.apple.mediaserverd.read")))
+)
+
+(define-once (media-remote)
+    (mobile-preferences-read
+        "com.apple.mediaremote"
+        "com.apple.mobileipod")
+    (allow mach-lookup
+           (global-name "com.apple.mediaremoted.xpc"))
+    (allow mach-lookup (with report) (with telemetry)
+        (xpc-service-name "com.apple.MediaPlayer.RemotePlayerService"))
+)
+
+(define-once (media-capture-support)
+    ;; Media capture, microphone access
+    (with-filter (extension "com.apple.webkit.microphone")
+        (allow device-microphone))
+
+    ;; Media capture, camera access
+    (with-filter (extension "com.apple.webkit.camera")
+        (allow user-preference-read
+            (preference-domain "com.apple.coremedia"))
+        (allow file-read* (subpath "/Library/CoreMediaIO/Plug-Ins/DAL"))
+        (allow mach-lookup (extension "com.apple.app-sandbox.mach"))
+        (allow device-camera))
+
+    ;; Support incoming video connections
+    (allow mach-lookup
+        (global-name "com.apple.coremedia.compressionsession")
+        (global-name "com.apple.coremedia.decompressionsession")
+        (global-name "com.apple.coremedia.videoqueue"))
+)
+
+(define-once (accessibility-support)
+    (allow mach-register
+        (local-name "com.apple.iphone.axserver"))
+    (mobile-preferences-read "com.apple.Accessibility")
+    
+    ;; <rdar://problem/10809394>
+    (deny file-write-create
+        (home-prefix "/Library/Preferences/com.apple.Accessibility.plist")
+        (with no-report))
+)
+
+(define-once (media-accessibility-support)
+    ;; <rdar://problem/12801477>
+    (allow mach-lookup
+        (global-name "com.apple.accessibility.mediaaccessibilityd"))
+
+    ;; <rdar://problem/12250145>
+    (mobile-preferences-read "com.apple.mediaaccessibility")
+    (mobile-preferences-read-write "com.apple.mediaaccessibility.public")
+)
+
+(define-once (url-translation)
+    ;; For translating http:// & https:// URLs referencing itms:// URLs.
+    ;; <rdar://problem/11587338>
+    (allow file-read*
+           (home-literal "/Library/Caches/com.apple.itunesstored/url-resolution.plist")))
+
+;;;
+;;; Declare that the application uses the OpenGL, Metal, and CoreML hardware & frameworks.
+;;;
+(define-once (opengl)
+    (allow iokit-open
+           (iokit-connection "IOGPU")
+           (iokit-user-client-class
+                "AGXCommandQueue"
+                "AGXDevice"
+                "AGXDeviceUserClient"
+                "AGXSharedUserClient"
+                "IOAccelContext"
+                "IOAccelDevice"
+                "IOAccelSharedUserClient"
+                "IOAccelSubmitter2"
+                "IOAccelContext2"
+                "IOAccelDevice2"
+                "IOAccelSharedUserClient2"))
+
+    (allow iokit-get-properties
+        (iokit-property "IOGLBundleName")
+        (iokit-property "IOGLESBundleName")
+        (iokit-property "IOGLESDefaultUseMetal")
+        (iokit-property "IOGLESMetalBundleName")
+        (iokit-property "MetalPluginClassName")
+        (iokit-property "MetalPluginName")
+    )
+
+    (allow sysctl-read
+           (sysctl-name #"kern.bootsessionuuid"))
+
+    (allow mach-lookup (with report) (with telemetry)
+        (xpc-service-name-prefix "com.apple.AGXCompilerService"))
+
+    (allow mach-lookup
+       ;; <rdar://problem/47268166>
+       (xpc-service-name "com.apple.MTLCompilerService"))
+    
+    (mobile-preferences-read
+        "com.apple.Metal" ;; <rdar://problem/25535471>
+        "com.apple.opengl" ;; <rdar://problem/23321675>
+    )
+)
+
+(define-once (debugging-support)
+        (allow file-read* file-map-executable
+               (subpath "/Developer"))
+
+        (allow ipc-posix-shm
+               (ipc-posix-name-regex #"^stack-logs")
+               (ipc-posix-name-regex #"^OA-")
+               (ipc-posix-name-regex #"^/FSM-"))
+
+        (allow ipc-posix-shm-read* ipc-posix-shm-write-data ipc-posix-shm-write-unlink
+               (ipc-posix-name-regex #"^gdt-[A-Za-z0-9]+-(c|s)$"))
+
+        (with-filter (system-attribute apple-internal)
+            ;; <rdar://problem/8565035>
+            ;; <rdar://problem/23857452>
+            (allow file-read* file-map-executable
+                   (subpath "/AppleInternal")
+                   (subpath "/usr/local/lib")))
+            (with-elevated-precedence
+                (allow file-read* file-map-executable file-issue-extension
+                   (front-user-home-subpath "/XcodeBuiltProducts")))
+
+        ;; <rdar://problem/8107758>
+        (allow file-read* file-map-executable
+               (subpath "/System/Library/Frameworks")
+               (subpath "/System/Library/PrivateFrameworks"))
+
+        ;; <rdar://problem/32544921>
+        (mobile-preferences-read "com.apple.hangtracer"))
+
+(define-once (device-access)
+    (deny file-read* file-write*
+          (vnode-type BLOCK-DEVICE CHARACTER-DEVICE))
+
+    (allow file-read* file-write-data
+           (literal "/dev/null")
+           (literal "/dev/zero"))
+
+    (allow file-read* file-write-data file-ioctl
+           (literal "/dev/dtracehelper"))
+
+    (allow file-read*
+           (literal "/dev/random")
+           (literal "/dev/urandom"))
+    ;; <rdar://problem/14215718>
+    (deny file-write-data (with no-report)
+          (literal "/dev/random")
+          (literal "/dev/urandom"))
+
+    (allow file-read* file-write-data file-ioctl
+           (literal "/dev/aes_0")))
+
+(define-once (awd-log-directory daemon-name)
+    (let*
+        ((base-directory (home-relative-path "/Library/Logs/awd")))
+        (allow-create-directory (literal base-directory))
+        (allow file-read* file-write*
+            (prefix (string-append base-directory "/awd-" daemon-name ".log")))
+        (allow mach-lookup (with report) (with telemetry)
+               (global-name "com.apple.awdd"))))
+
+(define-once (logd-diagnostic-paths)
+    (require-any
+        (subpath "/private/var/db/diagnostics")
+        (subpath "/private/var/db/timesync")
+        (subpath "/private/var/db/uuidtext")
+        (subpath "/private/var/userdata/diagnostics")))
+(define-once (logd-diagnostic-client)
+    (with-filter
+        (require-all
+            (require-any
+                (require-entitlement "com.apple.private.logging.diagnostic")
+                (require-entitlement "com.apple.diagnosticd.diagnostic"))
+            (extension "com.apple.logd.read-only"))
+        (allow file-read*
+               (logd-diagnostic-paths))))
+
+(define required-etc-files
+  (literal "/private/etc/fstab"
+           "/private/etc/hosts"
+           "/private/etc/group"
+           "/private/etc/passwd"
+           "/private/etc/protocols"
+           "/private/etc/services"))
+
+(define-once (speech-synthesis-and-voiceover)
+    ;; Speak Selection & VoiceOver
+    ;; <rdar://problem/12030530> AX: Sandbox violation with changing Language while VO is on
+    ;; and <rdar://problem/13071747>
+    (mobile-preferences-read
+        "com.apple.SpeakSelection" ; Needed for WebSpeech
+        "com.apple.VoiceOverTouch" ; Needed for non-US english language synthesis
+        "com.apple.voiceservices") ; Ditto
+
+    ;; <rdar://problem/14555119> Access to high quality speech voices
+    ;; Needed for WebSpeech
+    (allow file-read*
+        (home-subpath "/Library/VoiceServices/Assets")
+        (home-subpath "/Library/Assets/com_apple_MobileAsset_VoiceServicesVocalizerVoice"))
+)
+
+(define-once (core-motion)
+    ;; CoreMotion
+    (mobile-preferences-read "com.apple.CoreMotion")
+
+    ;; CoreMotion’s deviceMotion API
+    (with-filter
+        (require-any
+            (iokit-registry-entry-class "AppleOscarNub")
+            (iokit-registry-entry-class "AppleSPUHIDInterface"))
+        (allow iokit-get-properties
+            (iokit-property "gyro-interrupt-calibration")))
+    (with-filter
+        (iokit-registry-entry-class "IOHIDEventServiceFastPathUserClient")
+        (allow iokit-open)
+        (allow iokit-get-properties iokit-set-properties
+            (iokit-property "interval"
+                            "mode"
+                            "QueueSize"
+                            "useMag"))
+        (allow iokit-get-properties
+            (iokit-property "client")))
+)
+
+;; Things required by UIKit
+(define-once (uikit-requirements)
+    (mobile-preferences-read
+        "com.apple.UIKit"
+        "com.apple.WebUI"
+        "com.apple.airplay"
+        "com.apple.avkit"
+        "com.apple.coreanimation"
+        "com.apple.mt"
+        "com.apple.preferences.sounds")
+
+    (allow mach-lookup (with report) (with telemetry)
+        (global-name "com.apple.frontboard.systemappservices")                 ; -[UIViewServiceInterface _createProcessAssertion] -> SBSProcessIDForDisplayIdentifier()
+        (global-name "com.apple.iohideventsystem")
+    )
+
+    (allow mach-lookup
+        (global-name "com.apple.CARenderServer"))
+
+    (allow mach-lookup (with report) (with telemetry)
+        (global-name-regex #"^com\.apple\.uikit\.viewservice\..+")
+        (xpc-service-name-regex #"\.apple-extension-service$") ;; <rdar://problem/19525887>
+        (xpc-service-name-regex #"\.viewservice$") ;; <rdar://problem/31252371>
+    )
+
+    ; UIKit-required IOKit nodes.
+    (allow iokit-open
+        (iokit-user-client-class "AppleJPEGDriverUserClient")
+        (iokit-user-client-class "IOSurfaceAcceleratorClient")
+        (iokit-user-client-class "IOSurfaceSendRight")
+        ;; Requires by UIView -> UITextMagnifierRenderer -> UIWindow
+        (iokit-user-client-class "IOSurfaceRootUserClient"))
+
+    ;; Silence sandbox violations from apps trying to create the empty plist if it doesn't exist.
+    ;; <rdar://problem/13796537>
+    (deny file-write-create
+        (home-prefix "/Library/Preferences/com.apple.UIKit.plist")
+        (with no-report))
+)
+
+(define-once (dictionary-support)
+    ; Dictionary Services used by UITextFields.
+    ; <rdar://problem/9386926>
+    (allow-create-directory
+        (home-literal "/Library/Caches/com.apple.DictionaryServices"))
+
+    ; <rdar://problem/8548856> Sub-TLF: Sandbox change for apps for read-only access to the dictionary directory/data
+    (allow file-read*
+        ; XXX - /Library ought to be allowed in all UI profiles but isn't (CF, MobileSafari)
+        (subpath "/Library/Dictionaries")
+        (home-subpath "/Library/Dictionaries"))
+)
+
+(define-once (network-extensions-support)
+    ;; Network Extensions / VPN helper.
+    (allow mach-lookup
+        (global-name "com.apple.nehelper")
+        (global-name "com.apple.nesessionmanager.content-filter")) ;; <rdar://problem/48442387>
+)
+
+(deny file-map-executable)
+
+(deny file-write-mount file-write-unmount)
+
+(allow file-read-metadata (with no-times)
+       (vnode-type DIRECTORY))
+(with-filter (apple-signed-executable?)
+  (allow file-read-metadata
+         (vnode-type DIRECTORY)))
+
+(with-filter (apple-signed-executable?)
+  (managed-configuration-read "CloudConfigurationDetails.plist")
+  (managed-configuration-read "CloudConfigurationSetAsideDetails.plist")
+  (mobile-preferences-read "com.apple.security"))
+
+(with-filter (system-attribute apple-internal)
+  (mobile-preferences-read "com.apple.PrototypeTools"))
+
+(with-elevated-precedence
+    (allow file-read*
+           (subpath "/usr/lib"
+                    "/usr/share"
+                    "/private/var/db/timezone"))
+    (allow-read-and-issue-generic-extensions
+        (subpath "/Library/RegionFeatures"
+                 "/System/Library"))
+    (allow file-issue-extension
+        (require-all
+            (extension-class "com.apple.mediaserverd.read")
+            (subpath "/System/Library")))
+    (let ((hw-identifying-paths
+            (require-any
+                (literal "/System/Library/Caches/apticket.der")
+                (subpath "/System/Library/Caches/com.apple.kernelcaches")
+                (subpath "/System/Library/Caches/com.apple.factorydata"))))
+        (deny file-issue-extension file-read* hw-identifying-paths))
+    
+    (allow file-map-executable
+           (subpath "/System/Library")
+           (subpath "/usr/lib"))
+    (allow file-read-metadata
+           (vnode-type SYMLINK))
+
+    ;;; <rdar://problem/24144418>
+    (allow file-read*
+           (subpath "/private/var/preferences/Logging"))
+
+    (mobile-preferences-read "kCFPreferencesAnyApplication")
+    (allow file-read*
+           (front-user-home-literal "/Library/Preferences/.GlobalPreferences.plist"))
+
+    (allow file-read*
+           (literal "/private/var/Managed Preferences/mobile/.GlobalPreferences.plist"))
+    (allow managed-preference-read (preference-domain "kCFPreferencesAnyApplication"))
+
+    (allow file-read-metadata
+           (home-literal "/Library/Caches/powerlog.launchd"))
+
+    (allow-read-and-issue-generic-extensions (executable-bundle))
+    (allow file-map-executable (executable-bundle))
+
+    ;; <rdar://problem/13963294>
+    (deny file-read-data file-issue-extension file-map-executable
+        (require-all
+            (executable-bundle)
+            (regex #"/[^/]+/SC_Info/")))
+
+    (unless (defined? 'restrictive-extension)
+        (with-filter
+            (extension
+                "com.apple.app-sandbox.read"
+                "com.apple.app-sandbox.read-write"
+                "com.apple.quicklook.readonly"
+                "com.apple.security.exception.files.absolute-path.read-only"
+                "com.apple.security.exception.files.absolute-path.read-write"
+                "com.apple.security.exception.files.home-relative-path.read-only"
+                "com.apple.security.exception.files.home-relative-path.read-write"
+                "com.apple.sharing.airdrop.readonly")
+            (allow file-read* file-read-metadata)
+            (allow file-issue-extension
+                   (extension-class "com.apple.app-sandbox.read"
+                                    "com.apple.mediaserverd.read"
+                                    "com.apple.quicklook.readonly"
+                                    "com.apple.sharing.airdrop.readonly")))
+        (with-filter
+            (extension
+                "com.apple.app-sandbox.read-write"
+                "com.apple.security.exception.files.absolute-path.read-write"
+                "com.apple.security.exception.files.home-relative-path.read-write")
+            (allow file-write*)
+            (allow file-issue-extension
+                   (extension-class "com.apple.app-sandbox.read-write"
+                                    "com.apple.mediaserverd.read-write"))))
+
+    ;; <rdar://problem/16079361>
+    (with-filter (global-name-prefix "")
+        (allow mach-register
+               (extension "com.apple.security.exception.mach-register.global-name")))
+    (with-filter (local-name-prefix "")
+        (allow mach-register
+               (extension "com.apple.security.exception.mach-register.local-name")))
+    (allow-read-and-issue-generic-extensions
+           (extension "com.apple.security.exception.files.absolute-path.read-only")
+           (extension "com.apple.security.exception.files.home-relative-path.read-only"))
+    (allow-read-write-and-issue-generic-extensions
+           (extension "com.apple.security.exception.files.absolute-path.read-write")
+           (extension "com.apple.security.exception.files.home-relative-path.read-write"))
+    (allow iokit-open
+           (extension "com.apple.security.exception.iokit-user-client-class"))
+    (allow managed-preference-read
+           (extension "com.apple.security.exception.managed-preference.read-only"))
+    (allow user-preference-read
+           (extension "com.apple.security.exception.shared-preference.read-only"))
+    (allow user-preference-read user-preference-write
+           (extension "com.apple.security.exception.shared-preference.read-write"))
+
+    (allow file-issue-extension
+          (require-all
+              (extension-class "com.apple.nsurlstorage.extension-cache")
+              (extension "com.apple.security.exception.files.home-relative-path.read-write")
+              (require-any
+                  (prefix "/private/var/root/Library/Caches/")
+                  (front-user-home-prefix "/Library/Caches/"))))
+)
+
+(debugging-support)
+
+(allow file-read*
+    required-etc-files
+    (literal "/"))
+
+(allow file-read*
+       (subpath "/private/var/MobileAsset/PreinstalledAssetsV2/InstallWithOs"))
+
+(device-access)
+
+(allow file-issue-extension
+    (require-all
+        (extension-class "com.apple.app-sandbox.read-write" "com.apple.app-sandbox.read")
+        (extension "com.apple.fileprovider.read-write")))
+
+(allow mach-lookup
+    (global-name "com.apple.logd")
+    (global-name "com.apple.logd.events")
+    (global-name "com.apple.distributed_notifications@1v3")
+    (global-name "com.apple.aggregated")
+    (global-name "com.apple.cfprefsd.daemon"))
+
+(allow mach-lookup (with report) (with telemetry)
+    (global-name "com.apple.tccd"))
+
+(allow ipc-posix-shm-read*
+       (ipc-posix-name-prefix "apple.cfprefs."))
+ 
+(allow mach-lookup (with report) (with telemetry)
+    (global-name "com.apple.lsd.open")
+    (global-name "com.apple.lsd.mapdb"))
+
+;; <rdar://problem/12413942>
+(allow file-read*
+       (well-known-system-group-container-literal "/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist"))
+(allow iokit-get-properties
+       (iokit-property "IORegistryEntryPropertyKeys"))
+
+(allow ipc-posix-sem-open
+       (ipc-posix-name "containermanagerd.fb_check"))
+
+(with-filter (ipc-posix-name "purplebuddy.sentinel")
+    (deny ipc-posix-sem-create ipc-posix-sem-post ipc-posix-sem-unlink ipc-posix-sem-wait)
+    (allow ipc-posix-sem-open))
+
+(allow mach-lookup (with report) (with telemetry)
+    (global-name "com.apple.runningboard"))
+
+(allow system-sched
+       (require-entitlement "com.apple.private.kernel.override-cpumon"))
+
+(deny sysctl-read (with no-report)
+      (sysctl-name "sysctl.proc_native"))
+
+(with-filter (system-attribute apple-internal)
+    (allow sysctl-read sysctl-write
+           (sysctl-name "vm.footprint_suspend")))
+
+(allow mach-lookup (with report) (with telemetry)
+       (global-name "com.apple.system.logger"))
+
+(allow file-read-metadata network-outbound
+       (literal "/private/var/run/syslog"))
+
+(allow mach-lookup
+       (global-name "com.apple.system.notification_center"))
+(allow ipc-posix-shm-read*
+       (ipc-posix-name "apple.shm.notification_center"))
+
+(allow mach-lookup (with report) (with telemetry)
+    (global-name "com.apple.diagnosticd"))
+
+(logd-diagnostic-client)
+
+(managed-configuration-read-public)
+
+(deny system-info (with no-report)
+      (info-type "net.link.addr"))
+
+(allow file-read*
+       (subpath "/private/var/db/datadetectors/sys"))
+
+(allow-well-known-system-group-container-subpath-read
+       "/systemgroup.com.apple.icloud.findmydevice.managed/Library")
+
+(allow mach-task-name (target self))
+
+(allow process-info-pidinfo (target self))
+(allow process-info-pidfdinfo (target self))
+(allow process-info-pidfileportinfo (target self))
+(allow process-info-setcontrol (target self))
+(allow process-info-dirtycontrol (target self))
+(allow process-info-rusage (target self))
+(allow process-info-codesignature (target self))
+
+(with-filter (apple-signed-executable?)
+    (mobile-preferences-read "com.apple.demo-settings"))
+
+;;;
+;;; End common.sb content
+;;;
+
+(deny mach-lookup (xpc-service-name-prefix ""))
+(deny iokit-get-properties (with partial-symbolication))
+(deny lsopen)
+
+;;;
+;;; The following rules were originally contained in 'UIKit-apps.sb'. We are duplicating them here so we can
+;;; remove unneeded sandbox extensions.
+;;;
+
+;; Any app can play audio & movies.
+(play-audio)
+(play-media)
+
+;; Access to media controls
+(media-remote)
+
+(url-translation)
+
+;; TextInput framework
+(allow mach-lookup (with report) (with telemetry)
+    (global-name "com.apple.TextInput"))
+
+(mobile-preferences-read "com.apple.da")
+
+(speech-synthesis-and-voiceover)
+
+(allow mach-lookup (with report) (with telemetry)
+    (global-name "com.apple.audio.AudioComponentRegistrar"))
+
+;; Permit reading assets via MobileAsset framework.
+(asset-access 'with-media-playback)
+
+(network-extensions-support)
+
+;; allow 3rd party applications to access nsurlstoraged's top level domain data cache
+(allow-well-known-system-group-container-literal-read
+    "/systemgroup.com.apple.nsurlstoragedresources/Library/dafsaData.bin")
+
+;; Access the keyboards
+(allow file-read*
+    (home-subpath "/Library/Caches/com.apple.keyboards"))
+
+;; Power logging
+(allow mach-lookup
+    (global-name "com.apple.powerlog.plxpclogger.xpc")) ;;  <rdar://problem/36442803>
+
+(mobile-preferences-read
+    "com.apple.EmojiPreferences"
+    ; <rdar://problem/8477596> com.apple.InputModePreferences
+    "com.apple.InputModePreferences"
+    ; <rdar://problem/8206632> Weather(1038) deny file-read-data ~/Library/Preferences/com.apple.keyboard.plist
+    "com.apple.keyboard"
+    ; <rdar://problem/9384085>
+    "com.apple.Preferences"
+    "com.apple.lookup.shared" ; Needed for DataDetector (Spotlight) support
+)
+
+;; Silently deny unnecessary accesses caused by MessageUI framework.
+;; This can be removed once <rdar://problem/47038102> is resolved.
+(deny file-read*
+    (home-literal "/Library/Preferences/com.apple.mobilemail.plist")
+    (with no-log))
+
+;; <rdar://problem/12985925> Need read access to /var/mobile/Library/Fonts to all apps
+(allow file-read*
+    (home-subpath "/Library/Fonts"))
+
+;; <rdar://problem/7344719&26323449> LaunchServices app icons
+(allow file-read*
+    (well-known-system-group-container-subpath "/systemgroup.com.apple.lsd.iconscache"))
+(allow mach-lookup (with report) (with telemetry)
+    (xpc-service-name "com.apple.iconservices")
+    (global-name "com.apple.iconservices"))
+
+(allow-preferences-common)
+
+(core-motion)
+
+;; Home Button
+(with-filter (iokit-registry-entry-class "IOPlatformDevice")
+    (allow iokit-get-properties
+        (iokit-property "home-button-type")))
+
+(uikit-requirements)
+
+;; <rdar://problem/9404009>
+(mobile-preferences-read "kCFPreferencesAnyApplication")
+
+(dictionary-support)
+
+; <rdar://problem/8440231>
+(allow file-read*
+    (home-literal "/Library/Caches/DateFormats.plist"))
+; Silently deny writes when CFData attempts to write to the cache directory.
+(deny file-write*
+    (home-literal "/Library/Caches/DateFormats.plist")
+    (with no-log))
+
+(framebuffer-access)
+
+;; <rdar://problem/7822790>
+(mobile-keybag-access)
+
+; <rdar://problem/7595408> , <rdar://problem/7643881>
+(opengl)
+
+(location-services)
+
+; CRCopyRestrictionsDictionary periodically tries to CFPreferencesAppSynchronize com.apple.springboard.plist
+; which will attempt to create the plist if it doesn't exist -- from any application.  Only SpringBoard is
+; allowed to write its plist; ignore all others, they don't know what they are doing.
+; See <rdar://problem/9375027> for sample backtraces.
+(deny file-write*
+    (home-prefix "/Library/Preferences/com.apple.springboard.plist")
+    (with no-log))
+
+;; <rdar://problem/34986314>
+(mobile-preferences-read "com.apple.indigo")
+
+;;;
+;;; End UIKit-apps.sb content
+;;;
+
+(deny sysctl*)
+(allow sysctl-read
+    (sysctl-name
+        "hw.activecpu"
+        "hw.availcpu"
+        "hw.cachelinesize"
+        "hw.cputype"
+        "hw.l2cachesize"
+        "hw.logicalcpu"
+        "hw.logicalcpu_max"
+        "hw.ncpu"
+        "hw.machine"
+        "hw.memsize"
+        "hw.model"
+        "hw.pagesize_compat"
+        "hw.physicalcpu"
+        "hw.physicalcpu_max"
+        "kern.bootargs"
+        "kern.hostname"
+        "kern.memorystatus_level"
+        "kern.osproductversion"
+        "kern.osrelease"
+        "kern.osvariant_status"
+        "kern.secure_kernel"
+        "kern.version"
+        "vm.footprint_suspend"))
+
+(allow iokit-get-properties
+    (iokit-property-regex #"^AAPL,(DisplayPipe|OpenCLdisabled|IOGraphics_LER(|_RegTag_1|_RegTag_0|_Busy_2)|alias-policy|boot-display|display-alias|mux-switch-state|ndrv-dev|primary-display|slot-name)")
+    (iokit-property "APTDevice")
+    (iokit-property "AVCSupported")
+    (iokit-property-regex #"^AppleJPEG(NumCores|Supports(AppleInterchangeFormats|MissingEOI|RSTLogging))")
+    (iokit-property "BaseAddressAlignmentRequirement")
+    (iokit-property-regex #"^DisplayPipe(PlaneBaseAlignment|StrideRequirements)")
+    (iokit-property "HEVCSupported")
+    (iokit-property-regex #"IOGVA(BGRAEnc|Codec|EncoderRestricted|Scaler)")
+    (iokit-property "IOClassNameOverride")
+    (iokit-property "IOPlatformUUID")
+    (iokit-property "IOSurfaceAcceleratorCapabilitiesDict")
+    (iokit-property "Protocol Characteristics")
+    (iokit-property "als-colorCfg") ;; <rdar://problem/52903475>
+    (iokit-property "artwork-device-idiom") ;; <rdar://problem/49497720>
+    (iokit-property "artwork-device-subtype")
+    (iokit-property "artwork-display-gamut") ;; <rdar://problem/49497788>
+    (iokit-property "artwork-dynamic-displaymode") ;; <rdar://problem/49497720>
+    (iokit-property "artwork-scale-factor") ;; <rdar://problem/49497788>
+    (iokit-property-regex #"(canvas-height|canvas-width)")
+    (iokit-property "chip-id") ;; <rdar://problem/52903477>
+    (iokit-property "class-code")
+    (iokit-property "color-accuracy-index")
+    (iokit-property "compatible") ;; <rdar://problem/47523516>
+    (iokit-property "compatible-device-fallback") ;; <rdar://problem/49497720>
+    (iokit-property "device-colors") ;; <rdar://problem/51322072>
+    (iokit-property "device-id")
+    (iokit-property "device-perf-memory-class")
+    (iokit-property "display-corner-radius") ;; <rdar://problem/50602737>
+    (iokit-property "emu")
+    (iokit-property "graphics-featureset-class") ;; <rdar://problem/49497720>
+    (iokit-property "graphics-featureset-fallbacks") ;; <rdar://problem/51322072>
+    (iokit-property "hdcp-hoover-protocol")
+    (iokit-property "iommu-present")
+    (iokit-property "oled-display") ;; <rdar://problem/51322072>
+    (iokit-property "product-description") ;; <rdar://problem/49497788>
+    (iokit-property "product-id")
+    (iokit-property "region-info") ;; <rdar://problem/52903475>
+    (iokit-property "regulatory-model-number") ;; <rdar://problem/52903475>
+    (iokit-property "soc-generation") ;; <rdar://problem/52903476>
+    (iokit-property "software-behavior")
+    (iokit-property "vendor-id")
+    (iokit-property "udid-version") ;; <rdar://problem/52903475>
+    (iokit-property "ui-pip") ;; <rdar://problem/48867037>
+)
+
+;; Read-only preferences and data
+(mobile-preferences-read
+    "com.apple.LaunchServices"
+    "com.apple.WebFoundation"
+    "com.apple.avfoundation.frecents" ;; <rdar://problem/33137029>
+    "com.apple.avfoundation.videoperformancehud" ;; <rdar://problem/31594568>
+    "com.apple.voiceservices.logging")
+
+;; Sandbox extensions
+(define (apply-read-and-issue-extension op path-filter)
+    (op file-read* path-filter)
+    (op file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read") path-filter)))
+(define (apply-write-and-issue-extension op path-filter)
+    (op file-write* path-filter)
+    (op file-issue-extension (require-all (extension-class "com.apple.app-sandbox.read-write") path-filter)))
+(define (read-only-and-issue-extensions path-filter)
+    (apply-read-and-issue-extension allow path-filter))
+(define (read-write-and-issue-extensions path-filter)
+    (apply-read-and-issue-extension allow path-filter)
+    (apply-write-and-issue-extension allow path-filter))
+(read-only-and-issue-extensions (extension "com.apple.app-sandbox.read"))
+(read-write-and-issue-extensions (extension "com.apple.app-sandbox.read-write"))
+
+;; Access to client's cache folder & re-vending to CFNetwork.
+(allow file-issue-extension (require-all
+    (extension "com.apple.app-sandbox.read-write")
+    (extension-class "com.apple.nsurlstorage.extension-cache")))
+
+(accessibility-support)
+
+(media-accessibility-support)
+
+;; Remote Web Inspector
+(allow mach-lookup
+       (global-name "com.apple.webinspector"))
+
+;; Various services required by CFNetwork and other frameworks
+(allow mach-lookup
+    (global-name "com.apple.PowerManagement.control")
+    (global-name "com.apple.analyticsd"))
+
+(deny file-write-create (vnode-type SYMLINK))
+(deny file-read-xattr file-write-xattr (xattr-regex #"^com\.apple\.security\.private\."))
+
+;; Allow loading injected bundles.
+(allow file-map-executable)
+
+;; AWD logging
+(awd-log-directory "com.apple.WebKit.WebContent")
+
+;; Allow ManagedPreference access
+(allow file-read* (literal "/private/var/Managed Preferences/mobile/com.apple.webcontentfilter.plist"))
+
+(allow file-read-data
+    (literal "/usr/local/lib/log") ; <rdar://problem/36629495>
+)
+
+(allow mach-lookup
+    (require-all
+        (extension "com.apple.webkit.extension.mach")
+        (global-name "com.apple.iphone.axserver-systemwide" "com.apple.tccd" "com.apple.AGXCompilerService")))
+
+(media-capture-support)
+
+;; These services have been identified as unused during living-on.
+;; This list overrides some definitions above and in common.sb.
+;; FIXME: remove overridden rules once the final list has been
+;; established, see https://bugs.webkit.org/show_bug.cgi?id=193840
+(deny mach-lookup
+    (global-name "com.apple.webkit.camera")
+)
+
+(when (defined? 'syscall-unix)
+    (deny syscall-unix (with send-signal SIGKILL))
+    (allow syscall-unix
+        (syscall-number SYS_exit)
+        (syscall-number SYS_read)
+        (syscall-number SYS_write)
+        (syscall-number SYS_open)
+        (syscall-number SYS_close)
+        (syscall-number SYS_unlink)
+        (syscall-number SYS_chmod)
+        (syscall-number SYS_getuid)
+        (syscall-number SYS_geteuid)
+        (syscall-number SYS_recvfrom)
+        (syscall-number SYS_getpeername)
+        (syscall-number SYS_access)
+        (syscall-number SYS_dup)
+        (syscall-number SYS_pipe)
+        (syscall-number SYS_getegid)
+        (syscall-number SYS_getgid)
+        (syscall-number SYS_sigprocmask)
+        (syscall-number SYS_sigaltstack)
+        (syscall-number SYS_ioctl)
+        (syscall-number SYS_readlink)
+        (syscall-number SYS_umask)
+        (syscall-number SYS_msync)
+        (syscall-number SYS_munmap)
+        (syscall-number SYS_mprotect)
+        (syscall-number SYS_madvise)
+        (syscall-number SYS_fcntl)
+        (syscall-number SYS_select)
+        (syscall-number SYS_fsync)
+        (syscall-number SYS_setpriority)
+        (syscall-number SYS_socket)
+        (syscall-number SYS_connect)
+        (syscall-number SYS_setsockopt)
+        (syscall-number SYS_gettimeofday)
+        (syscall-number SYS_getrusage)
+        (syscall-number SYS_getsockopt)
+        (syscall-number SYS_writev)
+        (syscall-number SYS_fchmod)
+        (syscall-number SYS_rename)
+        (syscall-number SYS_flock)
+        (syscall-number SYS_sendto)
+        (syscall-number SYS_shutdown)
+        (syscall-number SYS_socketpair)
+        (syscall-number SYS_mkdir)
+        (syscall-number SYS_rmdir)
+        (syscall-number SYS_pread)
+        (syscall-number SYS_pwrite)
+        (syscall-number SYS_csops)
+        (syscall-number SYS_csops_audittoken)
+        (syscall-number SYS_kdebug_trace64)
+        (syscall-number SYS_kdebug_trace)
+        (syscall-number SYS_sigreturn)
+        (syscall-number SYS_pathconf)
+        (syscall-number SYS_getrlimit)
+        (syscall-number SYS_setrlimit)
+        (syscall-number SYS_mmap)
+        (syscall-number SYS_lseek)
+        (syscall-number SYS_ftruncate)
+        (syscall-number SYS_sysctl)
+        (syscall-number SYS_mlock)
+        (syscall-number SYS_munlock)
+        (syscall-number SYS_getattrlist)
+        (syscall-number SYS_getxattr)
+        (syscall-number SYS_fgetxattr)
+        (syscall-number SYS_listxattr)
+        (syscall-number SYS_shm_open)
+        (syscall-number SYS_sem_wait)
+        (syscall-number SYS_sem_post)
+        (syscall-number SYS_sysctlbyname)
+        (syscall-number SYS_psynch_mutexwait)
+        (syscall-number SYS_psynch_mutexdrop)
+        (syscall-number SYS_psynch_cvbroad)
+        (syscall-number SYS_psynch_cvsignal)
+        (syscall-number SYS_psynch_cvwait)
+        (syscall-number SYS_psynch_rw_wrlock)
+        (syscall-number SYS_psynch_rw_unlock)
+        (syscall-number SYS_psynch_cvclrprepost)
+        (syscall-number SYS_process_policy)
+        (syscall-number SYS_issetugid)
+        (syscall-number SYS___pthread_kill)
+        (syscall-number SYS___pthread_markcancel)
+        (syscall-number SYS___pthread_sigmask)
+        (syscall-number SYS___disable_threadsignal)
+        (syscall-number SYS___semwait_signal)
+        (syscall-number SYS_proc_info)
+        (syscall-number SYS_stat64)
+        (syscall-number SYS_fstat64)
+        (syscall-number SYS_lstat64)
+        (syscall-number SYS_getdirentries64)
+        (syscall-number SYS_statfs64)
+        (syscall-number SYS_fstatfs64)
+        (syscall-number SYS_getfsstat64)
+        (syscall-number SYS_getaudit_addr)
+        (syscall-number SYS_bsdthread_create)
+        (syscall-number SYS_bsdthread_terminate)
+        (syscall-number SYS_workq_kernreturn)
+        (syscall-number SYS_thread_selfid)
+        (syscall-number SYS_kevent_qos)
+        (syscall-number SYS_kevent_id)
+        (syscall-number SYS___mac_syscall)
+        (syscall-number SYS_read_nocancel)
+        (syscall-number SYS_write_nocancel)
+        (syscall-number SYS_open_nocancel)
+        (syscall-number SYS_close_nocancel)
+        (syscall-number SYS_sendmsg_nocancel)
+        (syscall-number SYS_recvfrom_nocancel)
+        (syscall-number SYS_fcntl_nocancel)
+        (syscall-number SYS_select_nocancel)
+        (syscall-number SYS_connect_nocancel)
+        (syscall-number SYS_sendto_nocancel)
+        (syscall-number SYS_fsgetpath)
+        (syscall-number SYS_fileport_makeport)
+        (syscall-number SYS_guarded_open_np)
+        (syscall-number SYS_guarded_close_np)
+        (syscall-number SYS_change_fdguard_np)
+        (syscall-number SYS_proc_rlimit_control)
+        (syscall-number SYS_connectx)
+        (syscall-number SYS_getattrlistbulk)
+        (syscall-number SYS_openat)
+        (syscall-number SYS_openat_nocancel)
+        (syscall-number SYS_fstatat64)
+        (syscall-number SYS_mkdirat)
+        (syscall-number SYS_bsdthread_ctl)
+        (syscall-number SYS_csrctl)
+        (syscall-number SYS_guarded_pwrite_np)
+        (syscall-number SYS_getentropy)
+        (syscall-number SYS_necp_open)
+        (syscall-number SYS_necp_client_action)
+        (syscall-number SYS_ulock_wait)
+        (syscall-number SYS_ulock_wake)
+        (syscall-number SYS_kdebug_typefilter)
+        (syscall-number SYS_shared_region_check_np)
+        (syscall-number SYS_getpid)
+        (syscall-number SYS_bsdthread_register)
+        (syscall-number SYS_sigaction)
+        (syscall-number SYS_gettid)
+        (syscall-number SYS_workq_open)
+        (syscall-number SYS_chdir)
+        (syscall-number SYS_memorystatus_control)
+        (syscall-number SYS_sem_open)
+        (syscall-number SYS_sem_close)
+        (syscall-number SYS_fsetattrlist)
+        (syscall-number SYS_guarded_open_dprotected_np) ; <rdar://problem/48166729>
+        (syscall-number SYS_mremap_encrypted)
+        (syscall-number SYS_dup2)
+        (syscall-number SYS_fileport_makefd)
+        (syscall-number SYS_os_fault_with_payload)
+        (syscall-number SYS_persona)
+        (syscall-number SYS_work_interval_ctl)
+        (syscall-number SYS_open_dprotected_np)
+        (syscall-number SYS_pread_nocancel)
+        (syscall-number SYS___semwait_signal_nocancel)
+        (syscall-number SYS_kdebug_trace_string) ;; Needed for performance sampling, see <rdar://problem/48829655>.
+        (syscall-number SYS_fgetattrlist) ;; <rdar://problem/50266257>
+        (syscall-number SYS_fsetxattr) ;; <rdar://problem/49795964>
+        (syscall-number SYS_abort_with_payload) ;; <rdar://problem/50967271>
+        (syscall-number SYS_kqueue) ;; <rdar://problem/49609201>
+        (syscall-number SYS_kqueue_workloop_ctl) ;; <rdar://problem/50999499>
+        (syscall-number SYS_psynch_rw_rdlock) ;; <rdar://problem/51134351>
+        (syscall-number SYS_faccessat) ;; <rdar://problem/56998930>
+    )
+)
diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj
index b52455a..95ce08d 100644
--- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj
+++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj
@@ -712,6 +712,7 @@
 		2DAF06D618BD1A470081CEB1 /* SmartMagnificationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DAF06D418BD1A470081CEB1 /* SmartMagnificationController.h */; };
 		2DB7667121B5E48A0045DDB1 /* AccessibilitySupportSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DB7667021B5E48A0045DDB1 /* AccessibilitySupportSPI.h */; };
 		2DB94299234E7A7F00E776AD /* WKMouseGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DB94297234E7A7F00E776AD /* WKMouseGestureRecognizer.h */; };
+		2DB96053239886C100102791 /* com.apple.WebKit.GPU.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = 2DB96052239886B900102791 /* com.apple.WebKit.GPU.sb */; };
 		2DC18FAD218910490025A88D /* WKDrawingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DC18FAB218910480025A88D /* WKDrawingView.h */; };
 		2DC18FB0218912640025A88D /* PencilKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DC18FAF218912640025A88D /* PencilKitSPI.h */; };
 		2DC18FB3218A6E9E0025A88D /* RemoteLayerTreeViews.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DC18FB1218A6E9E0025A88D /* RemoteLayerTreeViews.h */; };
@@ -1398,7 +1399,6 @@
 		A5EC6AD42151BD7B00677D17 /* WebPageDebuggable.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EC6AD32151BD6900677D17 /* WebPageDebuggable.h */; };
 		A5EFD38C16B0E88C00B2F0E8 /* WKPageVisibilityTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EFD38B16B0E88C00B2F0E8 /* WKPageVisibilityTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		A78CCDDB193AC9F8005ECC25 /* com.apple.WebKit.Networking.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = A78CCDD8193AC9E3005ECC25 /* com.apple.WebKit.Networking.sb */; };
-		A78CCDDB193AC9F8005ECC26 /* com.apple.WebKit.GPU.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = A78CCDD8193AC9E3005ECC26 /* com.apple.WebKit.GPU.sb */; };
 		A78CCDDC193AC9FB005ECC25 /* com.apple.WebKit.WebContent.sb in CopyFiles */ = {isa = PBXBuildFile; fileRef = A78CCDD9193AC9E3005ECC25 /* com.apple.WebKit.WebContent.sb */; };
 		A7D792D81767CCA300881CBE /* ActivityAssertion.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D792D41767CB0900881CBE /* ActivityAssertion.h */; };
 		AAB145E6223F931200E489D8 /* PrefetchCache.h in Headers */ = {isa = PBXBuildFile; fileRef = AAB145E4223F931200E489D8 /* PrefetchCache.h */; };
@@ -1975,9 +1975,9 @@
 			dstPath = "$(INSTALL_PATH)";
 			dstSubfolderSpec = 0;
 			files = (
-				A78CCDDB193AC9F8005ECC26 /* com.apple.WebKit.GPU.sb in CopyFiles */,
 				A78CCDDB193AC9F8005ECC25 /* com.apple.WebKit.Networking.sb in CopyFiles */,
 				A78CCDDC193AC9FB005ECC25 /* com.apple.WebKit.WebContent.sb in CopyFiles */,
+				2DB96053239886C100102791 /* com.apple.WebKit.GPU.sb in CopyFiles */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2923,6 +2923,7 @@
 		2DB7667021B5E48A0045DDB1 /* AccessibilitySupportSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySupportSPI.h; sourceTree = "<group>"; };
 		2DB94297234E7A7F00E776AD /* WKMouseGestureRecognizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WKMouseGestureRecognizer.h; path = ios/WKMouseGestureRecognizer.h; sourceTree = "<group>"; };
 		2DB94298234E7A7F00E776AD /* WKMouseGestureRecognizer.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = WKMouseGestureRecognizer.mm; path = ios/WKMouseGestureRecognizer.mm; sourceTree = "<group>"; };
+		2DB96052239886B900102791 /* com.apple.WebKit.GPU.sb */ = {isa = PBXFileReference; lastKnownFileType = text; path = com.apple.WebKit.GPU.sb; sourceTree = "<group>"; };
 		2DC18FAB218910480025A88D /* WKDrawingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKDrawingView.h; path = ios/WKDrawingView.h; sourceTree = "<group>"; };
 		2DC18FAC218910480025A88D /* WKDrawingView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKDrawingView.mm; path = ios/WKDrawingView.mm; sourceTree = "<group>"; };
 		2DC18FAF218912640025A88D /* PencilKitSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PencilKitSPI.h; sourceTree = "<group>"; };
@@ -7751,6 +7752,7 @@
 		A78CCDD6193AC9E3005ECC25 /* ios */ = {
 			isa = PBXGroup;
 			children = (
+				2DB96052239886B900102791 /* com.apple.WebKit.GPU.sb */,
 				A78CCDD8193AC9E3005ECC25 /* com.apple.WebKit.Networking.sb */,
 				A78CCDD9193AC9E3005ECC25 /* com.apple.WebKit.WebContent.sb */,
 			);
