apple-data 0.1.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/apple_data/boot_args.rb +5 -0
  3. data/lib/apple_data/fdr.rb +30 -0
  4. data/lib/apple_data/ioreg.rb +57 -0
  5. data/lib/apple_data/ipsw.rb +25 -0
  6. data/lib/apple_data/keybag.rb +56 -0
  7. data/lib/apple_data/lockdown.rb +48 -0
  8. data/lib/apple_data/macho.rb +5 -0
  9. data/lib/apple_data/version.rb +5 -0
  10. data/lib/apple_data.rb +8 -0
  11. data/share/4cc.yaml +297 -293
  12. data/share/apns.yaml +367 -364
  13. data/share/backup.yaml +47 -44
  14. data/share/baseband/qualcomm/mav13.yaml +26 -0
  15. data/share/baseband/qualcomm/mav20.yaml +45 -0
  16. data/share/baseband/qualcomm/mav21.yaml +254 -0
  17. data/share/baseband.yaml +290 -1
  18. data/share/bluetooth.yaml +75 -71
  19. data/share/boot_args.yaml +863 -855
  20. data/share/bridgeos.yaml +174 -131
  21. data/share/bundles.yaml +56 -60
  22. data/share/coprocessor.yaml +64 -0
  23. data/share/cores.yaml +72 -47
  24. data/share/debug.yaml +13 -0
  25. data/share/defaults.yaml +5 -0
  26. data/share/dnssd.yaml +171 -166
  27. data/share/entitlements.yaml +10391 -0
  28. data/share/environment_variables.yaml +354 -0
  29. data/share/esim.yaml +7 -0
  30. data/share/fdr.yaml +150 -148
  31. data/share/firmware.yaml +1310 -0
  32. data/share/homekit.yaml +14 -14
  33. data/share/iboot.yaml +143 -0
  34. data/share/icloud.yaml +11 -8
  35. data/share/img4.yaml +454 -453
  36. data/share/ioreg.yaml +5647 -5642
  37. data/share/ipsw.yaml +51505 -1099
  38. data/share/kext.yaml +3491 -1718
  39. data/share/keybags/7000.yaml +44342 -0
  40. data/share/keybags/7001.yaml +19430 -0
  41. data/share/keybags/7002.yaml +292 -0
  42. data/share/keybags/8000.yaml +82065 -0
  43. data/share/keybags/8001.yaml +29655 -0
  44. data/share/keybags/8004.yaml +295 -0
  45. data/share/keybags/8006.yaml +65 -0
  46. data/share/keybags/8010.yaml +23899 -0
  47. data/share/keybags/8011.yaml +4409 -0
  48. data/share/keybags/8015.yaml +23626 -0
  49. data/share/keybags/8020.yaml +4488 -0
  50. data/share/keybags/8027.yaml +43 -0
  51. data/share/keybags/8030.yaml +8687 -0
  52. data/share/keybags/8101.yaml +8595 -0
  53. data/share/keybags/8720.yaml +2026 -0
  54. data/share/keybags/8900.yaml +2344 -0
  55. data/share/keybags/8920.yaml +6761 -0
  56. data/share/keybags/8922.yaml +3141 -0
  57. data/share/keybags/8930.yaml +20583 -0
  58. data/share/keybags/8940.yaml +36319 -0
  59. data/share/keybags/8942.yaml +17343 -0
  60. data/share/keybags/8945.yaml +23360 -0
  61. data/share/keybags/8947.yaml +1384 -0
  62. data/share/keybags/8950.yaml +16258 -0
  63. data/share/keybags/8955.yaml +52163 -0
  64. data/share/keybags/8960.yaml +49499 -0
  65. data/share/keys.yaml +56 -0
  66. data/share/lightning.yaml +26 -23
  67. data/share/lockdownd.yaml +74 -71
  68. data/share/mach_o.yaml +204 -172
  69. data/share/mobile_assets.yaml +113 -127
  70. data/share/mobile_gestalt.yaml +2447 -2444
  71. data/share/nvram.yaml +463 -441
  72. data/share/ota.yaml +4 -1
  73. data/share/pki.yaml +103 -99
  74. data/share/platforms.yaml +35 -31
  75. data/share/pmu.yaml +52 -26
  76. data/share/registers.yaml +1579 -1603
  77. data/share/resources.yaml +202 -198
  78. data/share/sep.yaml +210 -206
  79. data/share/services.yaml +641 -636
  80. data/share/sip.yaml +64 -0
  81. data/share/smc.yaml +7 -0
  82. data/share/syscfg.yaml +4 -1
  83. data/share/tipw_sync.yaml +79103 -0
  84. data/share/vmapple.yaml +35 -0
  85. metadata +80 -15
data/share/bridgeos.yaml CHANGED
@@ -1,165 +1,208 @@
1
1
  ---
2
- local:
3
- properties:
4
- - AppleInternal
5
- - CPUArchitecture
6
- - EffectiveProductionStatusSEP
7
- - HWModel
8
- - HasSEP
9
- - IsUIBuild
10
- - DeviceSupportsLockdown
11
- - EffectiveSecurityModeAp
12
- - SigningFuse
13
- - BuildVersion
14
- - OSVersion
15
- - BridgeVersion
16
- - SensitivePropertiesVisible
17
- - ProductName
18
- - ProductType
19
- - SerialNumber
20
- - BootSessionUUID
21
- - DeviceColor
22
- - EffectiveProductionStatusAp
23
- - EffectiveSecurityModeSEP
24
- - UniqueChipID
25
- - UniqueDeviceID
26
- - RemoteXPCVersionFlags
27
- - CertificateProductionStatus
28
- - CertificateSecurityMode
29
- - DeviceClass
30
- - DeviceEnclosureColor
31
- - SecurityDomain
32
- - OSInstallEnvironment
33
- - Image4Supported
34
- services:
35
- - name: com.apple.corecaptured.remoteservice
36
- - name: com.apple.remote.installcoordination_proxy
37
- - name: com.apple.mobile.storage_mounter_proxy.bridge.macOS
38
- - name: com.apple.osanalytics.logRelay
39
- - name: com.apple.CSCSupportd
40
- - name: com.apple.mobile.storage_mounter_proxy.bridge
41
- - name: com.apple.sysdiagnose.remote
42
- - name: com.apple.mobile.notification_proxy.remote
43
- remote:
44
- properties:
45
- - AppleInternal
46
- - CPUArchitecture
47
- - ChipID
48
- - EffectiveProductionStatusSEP
49
- - HWModel
50
- - HasSEP
51
- - LocationID
52
- - IsUIBuild
53
- - RegionInfo
54
- - DeviceSupportsLockdown
55
- - EffectiveSecurityModeAp
56
- - SigningFuse
57
- - BuildVersion
58
- - OSVersion
59
- - BridgeVersion
60
- - SensitivePropertiesVisible
61
- - BoardRevision
62
- - Image4CryptoHashMethod
63
- - MobileDeviceMinimumVersion
64
- - ProductName
65
- - ProductType
66
- - SerialNumber
67
- - BootSessionUUID
68
- - BoardId
69
- - DeviceColor
70
- - EffectiveProductionStatusAp
71
- - EffectiveSecurityModeSEP
72
- - UniqueChipID
73
- - UniqueDeviceID
74
- - RemoteXPCVersionFlags
75
- - CertificateProductionStatus
76
- - CertificateSecurityMode
77
- - DeviceClass
78
- - DeviceEnclosureColor
79
- - ModelNumber
80
- - SecurityDomain
81
- - OSInstallEnvironment
82
- - InterfaceIndex
83
- - HardwarePlatform
84
- - Image4Supported
85
- services:
86
- - name: com.apple.eos.BiometricKit
2
+ metadata:
3
+ description:
4
+ credits:
5
+ local_properties:
6
+ AppleInternal:
7
+ description:
8
+ BootSessionUUID:
9
+ description:
10
+ BridgeVersion:
11
+ description:
12
+ BuildVersion:
13
+ description:
14
+ CertificateProductionStatus:
15
+ description:
16
+ CertificateSecurityMode:
17
+ description:
18
+ CPUArchitecture:
19
+ description:
20
+ DeviceClass:
21
+ description:
22
+ DeviceColor:
23
+ description:
24
+ DeviceEnclosureColor:
25
+ description:
26
+ DeviceSupportsLockdown:
27
+ description:
28
+ type: boolean
29
+ EffectiveProductionStatusAp:
30
+ description:
31
+ EffectiveProductionStatusSEP:
32
+ description:
33
+ EffectiveSecurityModeAp:
34
+ description:
35
+ EffectiveSecurityModeSEP:
36
+ description:
37
+ HasSEP:
38
+ description:
39
+ type: boolean
40
+ HWModel:
41
+ description:
42
+ Image4Supported:
43
+ description:
44
+ IsUIBuild:
45
+ description:
46
+ type: boolean
47
+ OSInstallEnvironment:
48
+ description:
49
+ OSVersion:
50
+ description:
51
+ ProductName:
52
+ description:
53
+ ProductType:
54
+ description:
55
+ RemoteXPCVersionFlags:
56
+ description:
57
+ SecurityDomain:
58
+ description:
59
+ SensitivePropertiesVisible:
60
+ description:
61
+ SerialNumber:
62
+ description:
63
+ SigningFuse:
64
+ description:
65
+ UniqueChipID:
66
+ description:
67
+ UniqueDeviceID:
68
+ description:
69
+ local_services:
70
+ com.apple.corecaptured.remoteservice:
71
+ description:
72
+ com.apple.CSCSupportd:
73
+ description:
74
+ com.apple.mobile.notification_proxy.remote:
75
+ description:
76
+ com.apple.mobile.storage_mounter_proxy.bridge:
77
+ description:
78
+ com.apple.osanalytics.logRelay:
79
+ description:
80
+ com.apple.remote.installcoordination_proxy:
81
+ description:
82
+ com.apple.sysdiagnose.remote:
83
+ description:
84
+ om.apple.mobile.storage_mounter_proxy.bridge.macOS:
85
+ description:
86
+ remote_properties:
87
+ AppleInternal:
88
+ BoardId:
89
+ BoardRevision:
90
+ BootSessionUUID:
91
+ BridgeVersion:
92
+ BuildVersion:
93
+ CertificateProductionStatus:
94
+ CertificateSecurityMode:
95
+ ChipID:
96
+ CPUArchitecture:
97
+ DeviceClass:
98
+ DeviceColor:
99
+ DeviceEnclosureColor:
100
+ DeviceSupportsLockdown:
101
+ EffectiveProductionStatusAp:
102
+ EffectiveProductionStatusSEP:
103
+ EffectiveSecurityModeAp:
104
+ EffectiveSecurityModeSEP:
105
+ HardwarePlatform:
106
+ HasSEP:
107
+ HWModel:
108
+ Image4CryptoHashMethod:
109
+ Image4Supported:
110
+ InterfaceIndex:
111
+ IsUIBuild:
112
+ LocationID:
113
+ MobileDeviceMinimumVersion:
114
+ ModelNumber:
115
+ OSInstallEnvironment:
116
+ OSVersion:
117
+ ProductName:
118
+ ProductType:
119
+ RegionInfo:
120
+ RemoteXPCVersionFlags:
121
+ SecurityDomain:
122
+ SensitivePropertiesVisible:
123
+ SerialNumber:
124
+ SigningFuse:
125
+ UniqueChipID:
126
+ UniqueDeviceID:
127
+ remote_services:
128
+ com.apple.aveservice:
129
+ properties:
130
+ UsesRemoteXPC: true
131
+ com.apple.bridgeOSUpdated:
132
+ properties:
133
+ UsesRemoteXPC: true
134
+ com.apple.corecaptured.remoteservice:
135
+ properties:
136
+ UsesRemoteXPC: true
137
+ com.apple.CoreKDL.remoteXPC:
138
+ description:
139
+ com.apple.corespeech.xpc.remote.control:
140
+ properties:
141
+ UsesRemoteXPC: true
142
+ com.apple.corespeech.xpc.remote.record:
143
+ properties:
144
+ UsesRemoteXPC: true
145
+ com.apple.eos.BiometricKit:
87
146
  properties:
88
147
  UsesRemoteXPC: false
89
- - name: com.apple.eos.LASecureIO
90
- - name: com.apple.corecaptured.remoteservice
91
- properties:
92
- UsesRemoteXPC: true
93
- - name: com.apple.nfcd.relay.control
94
- properties:
95
- UsesBridgeXPC: false
96
- - name: com.apple.xpc.remote.mobile_obliteration
148
+ com.apple.eos.LASecureIO:
149
+ com.apple.icloud.findmydeviced.bridge:
150
+ version: 1
97
151
  properties:
152
+ ServiceVersion: 1
98
153
  UsesRemoteXPC: true
99
- - name: com.apple.TrustedAccessoryController
154
+ com.apple.internal.xpc.remote.kext_audit:
100
155
  properties:
101
156
  UsesRemoteXPC: true
102
- - name: com.apple.internal.xpc.remote.kext_audit
157
+ com.apple.lskdd:
103
158
  properties:
104
- UsesRemoteXPC: true
105
- - name: com.apple.sysdiagnose.remote
159
+ UsesRemoteXPC: 1
160
+ com.apple.mobileactivationd.bridge:
161
+ version: 1
106
162
  properties:
163
+ ServiceVersion: 1
107
164
  UsesRemoteXPC: true
108
- - name: com.apple.sysdiagnose.stackshot.remote
165
+ com.apple.multiverse.remote.bridgetime:
166
+ com.apple.nfcd.relay.control:
109
167
  properties:
110
- UsesRemoteXPC: true
111
- - name: com.apple.powerchime.remote
168
+ UsesBridgeXPC: false
169
+ com.apple.nfcd.relay.uart:
112
170
  properties:
113
- UsesRemoteXPC: true
114
- - name: com.apple.bridgeOSUpdated
171
+ UsesBridgeXPC: false
172
+ com.apple.osanalytics.logTransfer:
115
173
  properties:
116
174
  UsesRemoteXPC: true
117
- - nane: com.apple.xpc.remote.multiboot
175
+ com.apple.powerchime.remote:
118
176
  properties:
119
177
  UsesRemoteXPC: true
120
- - name: com.apple.corespeech.xpc.remote.control
178
+ com.apple.private.avvc.xpc.remote:
121
179
  properties:
122
180
  UsesRemoteXPC: true
123
- - name: com.apple.private.avvc.xpc.remote
181
+ com.apple.recoverylogd.bridge:
182
+ version: 1
124
183
  properties:
184
+ ServiceVersion: 1
125
185
  UsesRemoteXPC: true
126
- - name: com.apple.corespeech.xpc.remote.record
186
+ com.apple.RestoreRemoteServices.restoreserviced:
187
+ version: 2
127
188
  properties:
189
+ ServiceVersion: 2
128
190
  UsesRemoteXPC: true
129
- - name: com.apple.videoprocessingd.encode.remote
191
+ com.apple.sysdiagnose.remote:
130
192
  properties:
131
193
  UsesRemoteXPC: true
132
- - name: com.apple.multiverse.remote.bridgetime
133
- - name: com.apple.recoverylogd.bridge
134
- version: 1
194
+ com.apple.sysdiagnose.stackshot.remote:
135
195
  properties:
136
- ServiceVersion: 1
137
196
  UsesRemoteXPC: true
138
- - name: com.apple.mobileactivationd.bridge
139
- version: 1
197
+ com.apple.TrustedAccessoryController:
140
198
  properties:
141
- ServiceVersion: 1
142
199
  UsesRemoteXPC: true
143
- - name: com.apple.nfcd.relay.uart
144
- properties:
145
- UsesBridgeXPC: false
146
- - name: com.apple.osanalytics.logTransfer
200
+ com.apple.videoprocessingd.encode.remote:
147
201
  properties:
148
202
  UsesRemoteXPC: true
149
- - name: com.apple.CoreKDL.remoteXPC
150
- - name: com.apple.icloud.findmydeviced.bridge
151
- version: 1
203
+ com.apple.xpc.remote.mobile_obliteration:
152
204
  properties:
153
- ServiceVersion: 1
154
205
  UsesRemoteXPC: true
155
- - name: com.apple.lskdd
156
- properties:
157
- UsesRemoteXPC: 1
158
- - name: com.apple.aveservice
206
+ com.apple.xpc.remote.multiboot:
159
207
  properties:
160
208
  UsesRemoteXPC: true
161
- - name: com.apple.RestoreRemoteServices.restoreserviced
162
- version: 2
163
- properties:
164
- ServiceVersion: 2
165
- UsesRemoteXPC: true
data/share/bundles.yaml CHANGED
@@ -1,61 +1,57 @@
1
1
  ---
2
- - id: com.apple.AppStore
3
- - id: com.apple.AssistantServices
4
- - id: com.apple.imtransferservices.IMTransferAgent
5
- - id: com.apple.locationd
6
- - id: com.apple.Preferences
7
- - id: com.apple.loginwindow
8
- - id: com.apple.ViewBridgeAuxiliary
9
- - id: com.apple.dock
10
- - id: com.apple.systemuiserver
11
- - id: com.apple.controlcenter
12
- - id: com.apple.controlstrip
13
- - id: com.apple.ViewBridgeAuxiliary
14
- - id: com.apple.quicklook.QuickLookUIService
15
- - id: com.apple.dock.extra
16
- - id: com.apple.AppSSOAgent
17
- - id: com.apple.finder
18
- - id: com.apple.talagent
19
- - id: com.apple.Spotlight
20
- - id: com.apple.notificationcenterui
21
- - id: com.apple.AirPlayUIAgent
22
- - id: com.apple.TextInputMenuAgent
23
- - id: com.apple.TextInputSwitcher
24
- - id: com.apple.coreservices.uiagent
25
- - id: com.apple.wifi.WiFiAgent
26
- - id: com.apple.UIKitSystemApp
27
- - id: com.apple.CoreLocationAgent
28
- - id: com.apple.security.Keychain-Circle-Notification
29
- - id: com.apple.SoftwareUpdateNotificationManager
30
- - id: com.apple.locationmenu
31
- - id: com.apple.AquaAppearanceHelper
32
- - id: com.apple.inputmethod.EmojiFunctionRowItem
33
- - id: com.apple.accessibility.universalAccessAuthWarn
34
- - id: com.apple.LocalAuthentication.UIAgent
35
- - id: com.apple.Safari
36
- - id: com.apple.Safari.SandboxBroker
37
- - id: com.apple.WebKit.Networking
38
- - id: com.apple.WebKit.WebContent
39
- - id: com.apple.CoreSimulator.CoreSimulatorService
40
- - id: com.apple.CoreSimulator.SimulatorTrampoline
41
- - id: com.apple.appkit.xpc.openAndSavePanelService
42
- - id: com.apple.quicklook.QuickLookUIService
43
- - id: com.apple.WebKit.WebContent
44
- - id: com.apple.Terminal
45
- - id: com.apple.WebKit.GPU
46
- - id: com.apple.PowerChime
47
- - id: com.apple.imdpersistence.IMDPersistenceAgent
48
- - id: com.apple.QuickLookThumbnailing.extension.ThumbnailExtension-macOS
49
- - id: com.apple.nbagent
50
- - id: com.apple.quicklook.QuickLookUIService
51
- - id: com.apple.WebKit.WebContent
52
- - id: com.apple.TV
53
- - id: com.apple.NowPlayingTouchUI
54
- - id: com.apple.AVKit.RoutePickerViewService
55
- - id: com.apple.WebKit.Networking
56
- - id: com.apple.OSDUIHelper
57
- - id: com.apple.LookupViewService
58
- - id: com.apple.QuickLookUIFramework.QLPreviewGenerationExtension
59
- - id: com.apple.dt.Xcode
60
- - id: com.apple.appkit.xpc.openAndSavePanelService
61
- - id: com.apple.quicklook.QuickLookUIService
2
+ metadata:
3
+ description:
4
+ credits:
5
+ bundles:
6
+ com.apple.AppStore:
7
+ com.apple.AssistantServices:
8
+ com.apple.imtransferservices.IMTransferAgent:
9
+ com.apple.locationd:
10
+ com.apple.Preferences:
11
+ com.apple.loginwindow:
12
+ com.apple.ViewBridgeAuxiliary:
13
+ com.apple.dock:
14
+ com.apple.systemuiserver:
15
+ com.apple.controlcenter:
16
+ com.apple.controlstrip:
17
+ com.apple.dock.extra:
18
+ com.apple.AppSSOAgent:
19
+ com.apple.finder:
20
+ com.apple.talagent:
21
+ com.apple.Spotlight:
22
+ com.apple.notificationcenterui:
23
+ com.apple.AirPlayUIAgent:
24
+ com.apple.TextInputMenuAgent:
25
+ com.apple.TextInputSwitcher:
26
+ com.apple.coreservices.uiagent:
27
+ com.apple.wifi.WiFiAgent:
28
+ com.apple.UIKitSystemApp:
29
+ com.apple.CoreLocationAgent:
30
+ com.apple.security.Keychain-Circle-Notification:
31
+ com.apple.SoftwareUpdateNotificationManager:
32
+ com.apple.locationmenu:
33
+ com.apple.AquaAppearanceHelper:
34
+ com.apple.inputmethod.EmojiFunctionRowItem:
35
+ com.apple.accessibility.universalAccessAuthWarn:
36
+ com.apple.LocalAuthentication.UIAgent:
37
+ com.apple.Safari:
38
+ com.apple.Safari.SandboxBroker:
39
+ com.apple.WebKit.Networking:
40
+ com.apple.WebKit.WebContent:
41
+ com.apple.CoreSimulator.CoreSimulatorService:
42
+ com.apple.CoreSimulator.SimulatorTrampoline:
43
+ com.apple.appkit.xpc.openAndSavePanelService:
44
+ com.apple.Terminal:
45
+ com.apple.WebKit.GPU:
46
+ com.apple.PowerChime:
47
+ com.apple.imdpersistence.IMDPersistenceAgent:
48
+ com.apple.QuickLookThumbnailing.extension.ThumbnailExtension-macOS:
49
+ com.apple.nbagent:
50
+ com.apple.quicklook.QuickLookUIService:
51
+ com.apple.TV:
52
+ com.apple.NowPlayingTouchUI:
53
+ com.apple.AVKit.RoutePickerViewService:
54
+ com.apple.OSDUIHelper:
55
+ com.apple.LookupViewService:
56
+ com.apple.QuickLookUIFramework.QLPreviewGenerationExtension:
57
+ com.apple.dt.Xcode:
@@ -0,0 +1,64 @@
1
+ ---
2
+ metadata:
3
+
4
+ secondary_cores:
5
+ ImageSignalProcessor:
6
+ firmware_type: ispf
7
+ description: Image Signal Processor
8
+
9
+ Maggie:
10
+ description: Ultra low power FPGA (iCE5LP4K) / Lattice iCEcube2
11
+ firmware_type: magg
12
+
13
+ PowerManagementProcessor:
14
+ type: arm7m
15
+ description: Power Management Processor. Provides ARM Cortex-M processor for power sequencing and interfaces
16
+ directly with the PMGR. Among its other talents, it manages the multi-button reset and DFU process using
17
+ configured values for `volume-up-debounce` and `volume-down-debounce`. There have been reported copies of
18
+ debug firmwares in the wild which might avoid such power sequencing.
19
+ firmware_type: pmpf
20
+
21
+ AppleNandStorage:
22
+ type: aarch64
23
+ description: Processor that presents NVMe to the AP and provides both NVMe storage as well as emulated SPI
24
+ flash for early boot. This
25
+ firmware_type: ansf
26
+ restore_firmware_type: rans
27
+
28
+ Veridian:
29
+ type: arm7m
30
+ is_rtkit: false
31
+ stack_size: 0x6000
32
+ ram_base: 0x20000000
33
+ mmio_base: 0x40000000
34
+
35
+ Pearl:
36
+ description: The FaceID assembly
37
+
38
+ Juliet:
39
+ description: The Infared FaceID camera
40
+
41
+ Yonkers:
42
+ description:
43
+
44
+ Savage:
45
+ description:
46
+
47
+ Baseband:
48
+ description: Comes from multiple vendors, encoded in `bbfw` file. See `baseband.yaml` for more info.
49
+ firmware_packing:
50
+ - zip
51
+
52
+ Vinyl:
53
+ description: >
54
+ the eUICC or eSIM
55
+ Contains a ZIP file with various hash specifiers, each containing two directories. One `recovery` is
56
+ seemingly empty (strange as this would imply a bad eUICC can never be recovered but also is consistent with
57
+ observed behaviour of a eSIM surviving DFU recovery). Update seems to contain two folders "main" and "gold".
58
+
59
+ These folders contain a `firmware.der` as well as a `profile.bin`
60
+
61
+ These folders contain a number of "root keys" as defined in the eUICC spec.
62
+ firmware_packing:
63
+ - zip
64
+